草庐IT

SQL 语法 : select only if more than X results

全部标签

sql - 在 Rails 中使用连接执行 update_all

在这种情况下,Rails对原始SQL的抽象让我抓狂。在MySQL中我可以这样做:UPDATEFROMtasksAStLEFTJOINprojectsaspONt.project_id=p.idSETt.invoice_id=7WHEREp.organization_id==42ANDt.invoice_idISNULL我如何在Rails3.0.1中使用预先加载来做到这一点?我已经尝试了以下所有方法:Tasks.joins(:project).where('projects.organization_id'=>42,:invoice_id=>nil).update_all(:invoic

sql - 如何查看 SQL ActiveRecord 生成的内容?

我想检查一些由ActiveRecord生成的查询,但我不需要实际运行它们。有没有办法在返回结果之前获取查询? 最佳答案 这两篇文章都应该可以帮助您做您想做的事。http://weblog.jamisbuck.org/2007/1/8/watching-activerecord-do-it-s-thinghttp://weblog.jamisbuck.org/2007/1/31/more-on-watching-activerecord 关于sql-如何查看SQLActiveRecord生

sql - 用于 250K+ 字符串的通配符搜索的 Fast(er) 方法

我在MySQL数据库中有一个英语词典,其中只有超过250K个条目,我正在使用一个简单的ruby​​前端在字符串的开头使用通配符来搜索它。到目前为止,我一直这样做:SELECT*FROMwordsWHEREwordLIKE'_e__o'甚至SELECT*FROMwordsWHEREwordLIKE'____s'我总是知道单词的确切长度,但除了一个字符之外的所有字符都可能是未知的。这比糖蜜慢,比没有前导通配符的类似查询慢大约15倍,因为无法使用该列的索引。我尝试了几种方法来缩小搜索范围。例如,我添加了26个额外的列,其中包含每个单词的单个字母计数,并首先使用这些列来缩小搜索范围。我也试过按

ruby - 这个 Ruby 语法是什么?

我刚看了下面的代码:classDirdefself.create_uniq&b###Here,&shouldmeanbisablocku=0loopdobeginfn=b[u]###But,whatdoesb[u]mean?Andbisnotcalled.FileUtils.mkdirfnreturnfnrescueErrno::EEXISTu+=1endendioendend我把我的困惑作为代码中的注释。 最佳答案 在末尾使用&b定义方法允许您使用传递给方法的block作为Proc对象。现在,如果您有Proc实例,[]语法是cal

ruby-on-rails - Development.log 日志文件不记录 Rails SQL 查询

我在这里关注MichaelHartl的Rails教程:http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-one#top我使用此命令在单独的窗口中跟踪SQL查询:tail-flog/development.log然而,当我在沙盒Rails控制台中时,日志不会用SQL语句更新,而是显示在Rails控制台中。我该如何纠正这种行为?我应该补充一点,我的数据库迁移和对数据模型(新表等)的更改都反射(reflect)在日志中。仅省略由Rails控制台内的方法传播的SQL语句(而是显示在Rails控制台中)。这是我的G

ruby - 在 Ruby 中是否有语法 : class << self . .. end 的任何相关应用程序

class上面的语法用于定义类实例变量。但是当我考虑语法意味着什么时,它对我没有任何意义,所以我想知道这种类型的语法是否用于任何其他类型的定义。我在这里的困惑点是:class附加运算符通常表示“将右侧的内容添加到左侧的对象”。但是在这个block的上下文中,这如何加起来“将这个block的内容放入类实例而不是实例的定义中”?出于同样的原因,我很困惑为什么在一个上下文中类classPoint#Instancemethodsgohereclass 最佳答案 在Ruby中,您可以重新打开现有类并添加方法。也就是说,你可以说:classFo

sql - Rails SQL COUNT N+1 效率低下

我有一个博客。在我的索引页面上,我拉入了所有博客文章。对于每篇博客文章,我都会计算该文章的评论数。这会导致N+1问题。我的查询如下所示:SELECT"blog_posts".*FROM"blog_posts"WHERE("blog_posts"."published"='t')ORDERBYpublished_atDESCSELECT"users".*FROM"users"WHERE("users"."id"IN(1,2,3))SELECTCOUNT(*)FROM"blog_comments"WHERE("blog_comments".blog_post_id=10)SELECTCOU

ruby - 为 Notepad++ 的 Ruby 语法突出显示添加关键字

我正在尝试添加require和include作为Notepad++的Ruby关键字,但我遇到了一些麻烦。我修改了langs.model.xml文件的ruby​​语言标签如下:__FILE__anddefendinorselfunless__LINE__begindefined?ensuremoduleredosuperuntilBEGINbreakdofalsenextrescuethenwhenENDcaseelsefornilretrytruewhilealiasclasselsififnotreturnundefyieldrequireinclude但是,即使在更新此requir

ruby-on-rails - rails/ruby "and return false"语法

我在我正在做的Rails教程中看到过这段代码defaccess_deniedredirect_tologin_path,:notice=>"Pleaselogintocontinue"andreturnfalseend在学习Rails之前,我对ruby​​进行了大量研究,但我读过的所有书籍都没有涵盖这里发生的这种“并返回false”语法。我在rails语法中找不到任何提及它的地方,是否有人能够提供链接或任何解释来解决这个问题?我不明白这里需要“和”,因为我认为ruby​​总是会返回最后计算的表达式。 最佳答案 and只是为了让您能够

sql - Ruby on Rails 迁移中的 unsigned int 字段?

我怎样才能使populationunsigned?defself.upcreate_table:citiesdo|t|t.string:namet.integer:populationt.float:latitudet.float:longitudet.timestampsendend 最佳答案 这应该适合你。t.column:population,'integerunsigned' 关于sql-RubyonRails迁移中的unsignedint字段?,我们在StackOverflow